package com.eisei.factory.tbl;

import javax.persistence.*;
import java.math.BigDecimal;
import java.sql.Timestamp;

/**
 * Created by equipo.crea on 3/08/14.
 */
@Entity
@Table(name = "TBL_CAT_ROL_GRUPOS", schema = "SIS_GES_CALIDAD", catalog = "")
public class TblCatRolGruposEntity {
    private BigDecimal pkCatRolGrupo;
    private String descGrupoRol;
    private Timestamp fechaAlta;
    private Timestamp fechaActualiza;
    private TblCatEstatusEntity tblCatEstatusByFkCatEstatus;

    @Id
    @Column(name = "PK_CAT_ROL_GRUPO", nullable = false, insertable = true, updatable = true, length = 0, precision = -127)
    public BigDecimal getPkCatRolGrupo() {
        return pkCatRolGrupo;
    }

    public void setPkCatRolGrupo(BigDecimal pkCatRolGrupo) {
        this.pkCatRolGrupo = pkCatRolGrupo;
    }

    @Basic
    @Column(name = "DESC_GRUPO_ROL", nullable = true, insertable = true, updatable = true, length = 50, precision = 0)
    public String getDescGrupoRol() {
        return descGrupoRol;
    }

    public void setDescGrupoRol(String descGrupoRol) {
        this.descGrupoRol = descGrupoRol;
    }

    @Basic
    @Column(name = "FECHA_ALTA", nullable = true, insertable = true, updatable = true, length = 7, precision = 0)
    public Timestamp getFechaAlta() {
        return fechaAlta;
    }

    public void setFechaAlta(Timestamp fechaAlta) {
        this.fechaAlta = fechaAlta;
    }

    @Basic
    @Column(name = "FECHA_ACTUALIZA", nullable = true, insertable = true, updatable = true, length = 7, precision = 0)
    public Timestamp getFechaActualiza() {
        return fechaActualiza;
    }

    public void setFechaActualiza(Timestamp fechaActualiza) {
        this.fechaActualiza = fechaActualiza;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        TblCatRolGruposEntity that = (TblCatRolGruposEntity) o;

        if (descGrupoRol != null ? !descGrupoRol.equals(that.descGrupoRol) : that.descGrupoRol != null) return false;
        if (fechaActualiza != null ? !fechaActualiza.equals(that.fechaActualiza) : that.fechaActualiza != null)
            return false;
        if (fechaAlta != null ? !fechaAlta.equals(that.fechaAlta) : that.fechaAlta != null) return false;
        if (pkCatRolGrupo != null ? !pkCatRolGrupo.equals(that.pkCatRolGrupo) : that.pkCatRolGrupo != null)
            return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = pkCatRolGrupo != null ? pkCatRolGrupo.hashCode() : 0;
        result = 31 * result + (descGrupoRol != null ? descGrupoRol.hashCode() : 0);
        result = 31 * result + (fechaAlta != null ? fechaAlta.hashCode() : 0);
        result = 31 * result + (fechaActualiza != null ? fechaActualiza.hashCode() : 0);
        return result;
    }

    @ManyToOne
    @JoinColumn(name = "FK_CAT_ESTATUS", referencedColumnName = "PK_CAT_ESTATUS")
    public TblCatEstatusEntity getTblCatEstatusByFkCatEstatus() {
        return tblCatEstatusByFkCatEstatus;
    }

    public void setTblCatEstatusByFkCatEstatus(TblCatEstatusEntity tblCatEstatusByFkCatEstatus) {
        this.tblCatEstatusByFkCatEstatus = tblCatEstatusByFkCatEstatus;
    }
}
